# -*- coding: utf-8 -*-
import mathimport mod.client.extraClientApi as clientApifrom mod.client.ui.controls.baseUIControl import BaseUIControlfrom mod.client.ui.controls.buttonUIControl import ButtonUIControlfrom mod.client.ui.controls.imageUIControl import ImageUIControlfrom legendaryPowerClientScript.ui.base import buttonComponentfrom legendaryPowerClientScript.ui.base.baseComponent import BaseComponentfrom legendaryPowerClientScript.ui.base.buttonComponent import ButtonComponentfrom legendaryPowerClientScript.ui.base.labelComponent import LabelComponentfrom legendaryPowerClientScript.util import apiUtilclass SelectAmountComponent(BaseComponent):
    """
    SelectAmountComponent类是继承自ButtonComponent的组件，封装了让玩家选择数量的相关功能。
    玩家可长按、点击组件中的按钮，来快速或逐个地更改数量的大小
    ui文件中，一个完整的选择数量组件包含以下结构（均为必选，斜杠分隔开表示两个均可）：

    按钮组件:
        left/subtract 按钮组件： 按下时减少数量
        right/add 按钮组件： 按下时增加数量
        label/count/amount 文字组件： 显示当前数量
    """

    def setMin(self, min):
        """
        设置数量最小值。选择的数量在最小值时，减少数量的按钮会隐藏
        Args:
            max (int): 最大值。
        """
        pass

    def setMax(self, max):
        # type: (int) -> None
        """
        设置数量最大值。选择的数量在最大值时，增加数量的按钮会隐藏
        Args:
            max (int): 最大值。
        """
        pass

    def setCount(self, count, triggerCallback=True):
        # type: (int, bool) -> None
        """
        设置数量。

        Args:
            count (int): 计数值。
            triggerCallback (bool): 是否触发回调函数。
        """
        pass

    def SetTouchEnable(self, enable, setGray=True):
        # type: (bool, bool) -> None
        """
        设置按钮能否被点击。

        Args:
        - enable (bool): 是否能点击
        - setGray (bool): 不能点击的话，是否将其变成灰色。默认True
        """
        pass

    def SetSpriteGray(self, isGray, type="default"):
        # type: (bool) -> None
        """
        将按钮图片变成灰色
        Args:
        - isGray (bool): 是否变成灰色
        """
        pass

    def updateOperationPanel(self, triggerCallback=True):
        # type: (bool) -> None
        """
        更新界面。

        Args:
            triggerCallback (bool): 是否触发回调函数。
        """
        pass

